The transmission of a message or of data from a single sender to multiple receivers over a network is an issue in multiple scenarios. For example, streaming of audio or video over the internet is a commonly known application. In order to reduce the required bandwidth, various proposals have been made for multicast protocols that require only a single transmission of a message by the sender when the channel or the transmission over the network is error free that is when no packet losses occur. Packet losses or errors are, however, regularly occurring. Reliable multicast protocols, that are multicast protocols trying to assure the receipt of the sender's message at each receiver, employ numerous mechanisms to initiate a retransmission of a multicast message when one of the receivers did not receive the message or when the received message was disrupted.
Some sender controlled mechanisms or protocols require that each receiver sends an acknowledgement message (ACK) to the sender when he safely received the message such that the sender resends the broadcast message when not all expected acknowledgement messages are received within a predetermined time period. Receiver controlled mechanisms usually make use of negative acknowledgement messages (NAKs) when a receiver has not received an expected message in order to trigger a further multicast of the message. However, resending multicast messages does increase the network load between the sender and all receivers, that is on each route between the sender and the receivers. This may be tolerable in audio and video distribution where increased traffic to all receivers can be compensated by a further packet loss without affecting the overall stability of the system, since usually only the quality of the stream decreases for a short time when packet or message losses occur.
There are, however, other systems being far more demanding with respect to an increase of network load, such that an unexpected retransmission of a message over multiple network routes may lead to instability of the whole system. For example, analysis networks or frameworks for analyzing a large amount of data in real time or in almost real time are much more vulnerable to unscheduled or unexpected additional traffic on one or more network segments.
An example for such an analysis framework may be the analysis framework used to analyze the data provided by a sensor network. Sensor networks, for example wireless sensor networks, have a wide range of applications. Wireless sensor networks of various technologies may be used for locating purposes, such as locating or tracking humans and/or other objects. Here, “locating” means the detection or determination of a geographical location or position, while tracking means locating at short time intervals such as to be able to follow the position and other kinematic variables of an observed object.
Some specialized locating or position tracking systems may also be used for locating players and other objects like balls or play equipment in sport events, such as, for example, soccer, American football, rugby, tennis, etc. Due to the rapid movements of the observed objects in such sports events, update intervals for the observed kinematic variables (position, velocity, acceleration) need to be particularly short to provide a reliable tracking. The so arising high data rates of the sensors may require a particularly efficient network or framework for the analysis of the sensors raw data, since different tasks require knowledge on the information of different subsets of the raw data of all sensors at a time. That is, the data of multiple sensors must be compared in order to draw a single useful conclusion or to detect a single event of interest.
To this end, data associated to a single sensor needs to be distributed to different entities or receivers to be processed. This is also the case for event based systems applying a hierarchical analysis approach deriving interdependent events at different hierarchical levels of dependency. An event may generally be defined to be an instantaneous occurrence of interest at a point of time. In general, an event is associated with a change of a related sensed quantity. An event may be a primitive event in a hierarchical base layer, which is directly based on sensor data (kinematic data) of the tracking system, or a composite event of a higher hierarchical order, which is based on previously detected other events. While a hierarchical approach may provide for the possibility to analyze the underlying data in a parallelized manner with multiple processing nodes communicating over a network, the problem persists that also the events have to be sent from their generator, that is from a single sender, to multiple receivers requiring the information of the event in order to fulfill their own tasks. When, however, an unscheduled network load occurs, such as from the rebroadcasting of events, the delay of the complete network may decrease to such an extent that the whole analysis framework becomes unstable. In particular, when individual receivers or network nodes fail to receive the required information in time, an error in the detected events may occur. This may even cause an error propagation through all the related nodes of higher hierarchical levels which depend on the erroneous event, which may in turn result in an instability of the whole system.
It is, therefore, required to provide ways for transmitting a message to multiple receivers in an efficient manner.